/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} A
 * @param {TreeNode} B
 * @return {boolean}
 */
 var isSubStructure = function(A, B) {
    if(B==null){
        return false;
    }
    function judge(n1,n2){
        if(n2==null){
            return true;
        }
        else if(n1==null){
            return false;
        }
        else if(n1.val==n2.val){
            return judge(n1.left,n2.left)&&judge(n1.right,n2.right)
        }
        else{
            return false;
        }
    }
    function traverse(node){
        if(node==null){
            return false;
        }
        else{
            if(node.val==B.val){
                if(judge(node,B)){
                    return true
                }
                else{
                    return traverse(node.left)||traverse(node.right)
                }
            }
            else{
                return traverse(node.left)||traverse(node.right)
            }
        }
        return false
    }
    return traverse(A);
};


// 执行用时：
// 136 ms
// , 在所有 JavaScript 提交中击败了
// 61.15%
// 的用户
// 内存消耗：
// 57.8 MB
// , 在所有 JavaScript 提交中击败了
// 44.80%
// 的用户